﻿/// <reference path="jquery-1.4.4.js" />
/// <reference path="jquery.validate.js" />
/// <reference path="jquery.validate.unobtrusive.js" />

(function ($) {
	$.validator.unobtrusive.parseDynamicContent = function (selector) {

		//use the normal unobstrusive.parse method
		$.validator.unobtrusive.parse(selector);

		//get the relevant form
		var form = $(selector).first().closest('form');

		//get the collections of unobstrusive validators, and jquery validators
		//and compare the two
		var unobtrusiveValidation = form.data('unobtrusiveValidation');
		var validator = form.validate();
		if (typeof unobtrusiveValidation != 'undefined') {
			$.each(unobtrusiveValidation.options.rules, function (elname, elrules) {
				if (validator.settings.rules[elname] == undefined) {
					var args = {};
					$.extend(args, elrules);
					args.messages = unobtrusiveValidation.options.messages[elname];
					//edit:use quoted strings for the name selector
					$("[name='" + elname + "']").rules("add", args);
				} else {
					$.each(elrules, function (rulename, data) {
						if (validator.settings.rules[elname][rulename] == undefined) {
							var args = {};
							args[rulename] = data;
							args.messages = unobtrusiveValidation.options.messages[elname][rulename];
							//edit:use quoted strings for the name selector
							$("[name='" + elname + "']").rules("add", args);
						}
					});
				}
			});
		}
	}
})($);